package com.je.app.model;

public class Periodo {

	private int idPeriodo;
	private int diaInicio;
	private int horaInicio;
	private int diaFin;
	private int horaFin;
	private double precioHora;
	private int minutosMinimo;

	public Periodo(){
		
	}

	
	public Periodo(int idPeriodo, int diaInicio, int horaInicio, int diaFin,
			int horaFin, double precioHora, int minutosMinimo) {
		super();
		this.idPeriodo = idPeriodo;
		this.diaInicio = diaInicio;
		this.horaInicio = horaInicio;
		this.diaFin = diaFin;
		this.horaFin = horaFin;
		this.precioHora = precioHora;
		this.minutosMinimo = minutosMinimo;
	}


	public Periodo(String fechaInicio, String fechaFin, double precio,
			int minutos) {
		String [] concat = fechaInicio.split(" - ");
		this.diaInicio = getNumeroDia(concat[0]);
		this.horaInicio = new Integer(concat[1]);
		concat = fechaFin.split(" - ");
		this.diaFin = getNumeroDia(concat[0]);
		this.horaFin = new Integer(concat[1]);
		this.precioHora = precio;
		this.minutosMinimo = minutos;

	}


	public boolean isPeriodo(int dia, int hora){
		
		int auxHoraFin = horaFin;
		int auxDiaFin = diaFin;
		if(getHoraInicio()>0 && diaFin==0 && horaFin==0){
			auxDiaFin = 7;
			auxHoraFin = 24;
		}
		
		return (dia>diaInicio || (dia == diaInicio && hora>=horaInicio)) && (dia<auxDiaFin || (dia == auxDiaFin && hora<auxHoraFin));
	}

	public int getIdPeriodo() {
		return idPeriodo;
	}

	public void setIdPeriodo(int idPeriodo) {
		this.idPeriodo = idPeriodo;
	}

	public double getPrecioHora() {
		return precioHora;
	}

	public void setPrecioHora(double precioHora) {
		this.precioHora = precioHora;
	}

	public int getMinutosMinimo() {
		return minutosMinimo;
	}

	public void setMinutosMinimo(int minutosMinimo) {
		this.minutosMinimo = minutosMinimo;
	}

	public int getDiaFin() {
		return diaFin;
	}

	public void setDiaFin(int diaFin) {
		this.diaFin = diaFin;
	}

	public int getDiaInicio() {
		return diaInicio;
	}

	public void setDiaInicio(int diaInicio) {
		this.diaInicio = diaInicio;
	}

	public int getHoraFin() {
		return horaFin;
	}

	public void setHoraFin(int horaFin) {
		this.horaFin = horaFin;
	}

	public int getHoraInicio() {
		return horaInicio;
	}

	public void setHoraInicio(int horaInicio) {
		this.horaInicio = horaInicio;
	}
	
	public String getFechaInicio(){
		String dia = getNombreDia(diaInicio);
		dia = dia + " - " + horaInicio;
		return dia;
	}
	
	public String getFechaFin(){
		String dia = getNombreDia(diaFin);
		dia = dia + " - " + horaFin;
		return dia;		
	}
	
	public String getNombreDia(int dia){
		switch(dia){
		case 0:
			return "Lunes";
		case 1:
			return "Martes";
		case 2:
			return "Miercoles";
		case 3:
			return "Jueves";
		case 4:
			return "Viernes";
		case 5:
			return "Sabado";
		case 6:
			return "Domingo";
		}
		return null;
	}

	public int getNumeroDia(String nombreDia){
		switch(nombreDia){
		case "Lunes":
			return 0;
		case "Martes":
			return 1;
		case "Miercoles":
			return 2;
		case "Jueves":
			return 3;
		case "Viernes":
			return 4;
		case "Sabado":
			return 5;
		case "Domingo":
			return 6;
		}
		return -1;
	}
}
